#ifndef __JUDGERESULT_HEADER
#define __JUDGERESULT_HEADER

#include <string>

struct JudgeResult {
	std::string session_id;
	std::string request_id;
	std::string socket_fd;
	std::string oj_name;

	std::string status_code;
	std::string status;
	std::string submit_id;
	std::string submit_time;
	std::string user_id;
	std::string problem_id;
	std::string judge_result;
	std::string language;
	std::string run_time;
	std::string memory;
	std::string code_length;
	
	typedef const char* ccp;
	typedef std::string ss;

	JudgeResult(ccp ses_id, ccp req_id, ccp sfd, 
			    ccp oj, ccp sta_code, ccp sta, 
				ccp sub_id, ccp sub_time, ccp user,
				ccp pro_id, ccp result, ccp lan, 
				ccp run, ccp mem, ccp length):
		session_id(ses_id), request_id(req_id), 
		socket_fd(sfd), oj_name(oj),
		status_code(sta_code), status(sta),
		submit_id(sub_id), submit_time(sub_time),
		user_id(user), problem_id(pro_id),
		judge_result(result), language(lan),
		run_time(run), memory(mem), code_length(length) {}

	JudgeResult(ss &ses_id, ss &req_id, ss &sfd, ss &oj,
			    ss &sta_code, ss &sta, ss &sub_id, ss &sub_time,
				ss &user, ss &pro_id, ss &result, ss &lan,
				ss &run, ss &mem, ss &length):
		session_id(ses_id), request_id(req_id), 
		socket_fd(sfd), oj_name(oj),
		status_code(sta_code), status(sta),
		submit_id(sub_id), submit_time(sub_time),
		user_id(user), problem_id(pro_id),
		judge_result(result), language(lan),
		run_time(run), memory(mem), code_length(length) {}
};

#endif // __JUDGERESULT_HEADER
